package com.molichuxing.gateway.bff.stock.services;

import java.util.List;
import java.util.Map;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.gateway.bff.stock.entity.request.create.EntrepotStorageCreateVo;
import com.molichuxing.gateway.bff.stock.entity.request.modify.EntrepotStorageModifyVo;
import com.molichuxing.gateway.bff.stock.entity.response.EntrepotStorageBaseVo;
import com.molichuxing.gateway.bff.stock.entity.response.EntrepotStorageVo;
import com.molichuxing.gateway.bff.stock.entity.response.FenceBaseVo;

/**
 * 
 * @author liyg
 * 中转库bff服务
 * 2019-08-26
 *
 */
public interface EntrepotStorageBffService {

	/**
	 *获取中转库列表
	 * @param map 参数
	 *key:shortName  String 中转库简称 非必填
	 *key:name       String 负责人姓名 非必填
	 *key:regionId   Integer 城市id 非必填
	 *key:sortName   String 排序字段 
	 *key:sortWay    String 排序方式 
	 *key:pageNum    Integer 当前页
	 *key:pageSize   Integer 每页显示条数
	 * @return
	 */
	Paged<EntrepotStorageVo> getEntrepotStorageList(Map<String, Object> map);
	
	
	/**
	 * key:stockType Integer 类型（1：中转库，2：门店） 
	 * key:shortName String 门店名称
     * key:storeStatus Integer 门店营业状态（null：所有门店，1：门店营业中）
     * key:dealerId Integer 经销商id
     * key:dealerStatus Integer 经销商营业状态（null：所有门店，1：经销商营业中）
     * key:dealerType Integer 经销商类型(null:所有，1:直销，2：分销)
     * key:isShow Integer 删除是否显示(null:所有，0:否，1：是)
	 * @param map
	 * @return
	 * @throws Exception 
	 */
	List<EntrepotStorageBaseVo> getEntrepotOrStore(Map<String, Object> map) throws Exception;
	
	/**
	 * 获取中转库列表
	 * @return
	 */
	List<EntrepotStorageVo> getEntrepotStorageList();
	/**
	 * 获取中转库列表
	 * @return
	 */
	List<EntrepotStorageVo> getEntrepotStorageLists();
	
	/**
	 * 获取中转库详情
	 * 
	 * @param id 中转库id
	 * @return
	 */
	EntrepotStorageVo getEntrepotStorage(Integer id);
	
	/**
	 * 保存中转库信息
	 * 
	 * @param createVo
	 * @return
	 */
	Boolean create(EntrepotStorageCreateVo createVo);
	
	/**
	 * 修改中转库信息
	 * 
	 * @param modifyVo
	 * @return
	 */
	Boolean modify(EntrepotStorageModifyVo modifyVo);
	
	/**
	 * 根据门店或者中转库查 围栏数据信息
	 * @param map
	 * @return
	 */
	List<FenceBaseVo>  getEntrepotOrStoreFence(Map<String, Object> map);

}
